<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8" />
    <title>dependency graph</title>
    <style>
      .node:active path,
      .node:hover path,
      .node.current path,
      .node:active polygon,
      .node:hover polygon,
      .node.current polygon
       {
        stroke: fuchsia;
        stroke-width: 2;
      }
      .edge:active path,
      .edge:hover path,
      .edge.current path,
      .edge:active ellipse,
      .edge:hover ellipse,
      .edge.current ellipse {
        stroke: fuchsia;
        stroke-width: 3;
        stroke-opacity: 1;
      }
      .edge:active polygon,
      .edge:hover polygon,
      .edge.current polygon {
        stroke: fuchsia;
        stroke-width: 3;
        fill: fuchsia;
        stroke-opacity: 1;
        fill-opacity: 1;
      }
      .edge:active text,
      .edge:hover text {
        fill: fuchsia;
      }
      .cluster path {
        stroke-width: 3;
      }
      .cluster:active path,
      .cluster:hover path {
        fill: #ffff0011;
      }
    </style>
  </head>
  <body>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.1 (20210417.1919)
 -->
<!-- Title: dependency&#45;cruiser output Pages: 1 -->
<svg width="1087pt" height="642pt"
 viewBox="0.00 0.00 1087.00 641.88" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 637.88)">
<title>dependency&#45;cruiser output</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-637.88 1083,-637.88 1083,4 -4,4"/>
<!-- bin/smcat -->
<g id="node1" class="node">
<title>bin/smcat</title>
<g id="a_node1"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/bin/smcat" xlink:title="bin/&lt;BR/&gt;&lt;B&gt;smcat&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M45.33,-302C45.33,-302 8.67,-302 8.67,-302 4.33,-302 0,-297.67 0,-293.33 0,-293.33 0,-284.67 0,-284.67 0,-280.33 4.33,-276 8.67,-276 8.67,-276 45.33,-276 45.33,-276 49.67,-276 54,-280.33 54,-284.67 54,-284.67 54,-293.33 54,-293.33 54,-297.67 49.67,-302 45.33,-302"/>
<text text-anchor="start" x="19" y="-291.8" font-family="Helvetica,sans-Serif" font-size="9.00">bin/</text>
<text text-anchor="start" x="13" y="-282.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">smcat</text>
</a>
</g>
</g>
<!-- package.json -->
<g id="node2" class="node">
<title>package.json</title>
<g id="a_node2"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/package.json" xlink:title="./&lt;BR/&gt;&lt;B&gt;package.json&lt;/B&gt;">
<path fill="#ffee44" stroke="black" d="M448,-630.52C448,-632.3 431.42,-633.75 411,-633.75 390.58,-633.75 374,-632.3 374,-630.52 374,-630.52 374,-601.48 374,-601.48 374,-599.7 390.58,-598.25 411,-598.25 431.42,-598.25 448,-599.7 448,-601.48 448,-601.48 448,-630.52 448,-630.52"/>
<path fill="none" stroke="black" d="M448,-630.52C448,-628.74 431.42,-627.3 411,-627.3 390.58,-627.3 374,-628.74 374,-630.52"/>
<text text-anchor="start" x="408.5" y="-618.8" font-family="Helvetica,sans-Serif" font-size="9.00">./</text>
<text text-anchor="start" x="382" y="-609.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">package.json</text>
</a>
</g>
</g>
<!-- bin/smcat&#45;&gt;package.json -->
<g id="edge1" class="edge">
<title>bin/smcat&#45;&gt;package.json</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M18,-302.22C18,-363.4 18,-616 18,-616 18,-616 367.67,-616 367.67,-616"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="367.67,-618.1 373.67,-616 367.67,-613.9 367.67,-618.1"/>
</g>
<!-- src/cli/actions.js -->
<g id="node3" class="node">
<title>src/cli/actions.js</title>
<g id="a_node3"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/actions.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;actions.js&lt;/B&gt;">
<path fill="#ccffcc" stroke="black" d="M160.83,-378C160.83,-378 120.17,-378 120.17,-378 115.83,-378 111.5,-373.67 111.5,-369.33 111.5,-369.33 111.5,-360.67 111.5,-360.67 111.5,-356.33 115.83,-352 120.17,-352 120.17,-352 160.83,-352 160.83,-352 165.17,-352 169.5,-356.33 169.5,-360.67 169.5,-360.67 169.5,-369.33 169.5,-369.33 169.5,-373.67 165.17,-378 160.83,-378"/>
<text text-anchor="start" x="127.5" y="-367.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="119.5" y="-358.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">actions.js</text>
</a>
</g>
</g>
<!-- bin/smcat&#45;&gt;src/cli/actions.js -->
<g id="edge2" class="edge">
<title>bin/smcat&#45;&gt;src/cli/actions.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M36,-302.24C36,-324.01 36,-365 36,-365 36,-365 105.39,-365 105.39,-365"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="105.39,-367.1 111.39,-365 105.39,-362.9 105.39,-367.1"/>
</g>
<!-- src/cli/make&#45;description.js -->
<g id="node4" class="node">
<title>src/cli/make&#45;description.js</title>
<g id="a_node4"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/make-description.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;make&#45;description.js&lt;/B&gt;">
<path fill="#ccffcc" stroke="black" d="M182.33,-302C182.33,-302 98.67,-302 98.67,-302 94.33,-302 90,-297.67 90,-293.33 90,-293.33 90,-284.67 90,-284.67 90,-280.33 94.33,-276 98.67,-276 98.67,-276 182.33,-276 182.33,-276 186.67,-276 191,-280.33 191,-284.67 191,-284.67 191,-293.33 191,-293.33 191,-297.67 186.67,-302 182.33,-302"/>
<text text-anchor="start" x="127.5" y="-291.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="98" y="-282.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">make&#45;description.js</text>
</a>
</g>
</g>
<!-- bin/smcat&#45;&gt;src/cli/make&#45;description.js -->
<g id="edge3" class="edge">
<title>bin/smcat&#45;&gt;src/cli/make&#45;description.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M54.19,-289C54.19,-289 83.99,-289 83.99,-289"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="83.99,-291.1 89.99,-289 83.99,-286.9 83.99,-291.1"/>
</g>
<!-- src/cli/normalize.js -->
<g id="node5" class="node">
<title>src/cli/normalize.js</title>
<g id="a_node5"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/normalize.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;normalize.js&lt;/B&gt;">
<path fill="#ccffcc" stroke="black" d="M165.83,-187C165.83,-187 115.17,-187 115.17,-187 110.83,-187 106.5,-182.67 106.5,-178.33 106.5,-178.33 106.5,-169.67 106.5,-169.67 106.5,-165.33 110.83,-161 115.17,-161 115.17,-161 165.83,-161 165.83,-161 170.17,-161 174.5,-165.33 174.5,-169.67 174.5,-169.67 174.5,-178.33 174.5,-178.33 174.5,-182.67 170.17,-187 165.83,-187"/>
<text text-anchor="start" x="127.5" y="-176.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="114.5" y="-167.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">normalize.js</text>
</a>
</g>
</g>
<!-- bin/smcat&#45;&gt;src/cli/normalize.js -->
<g id="edge4" class="edge">
<title>bin/smcat&#45;&gt;src/cli/normalize.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M36,-275.81C36,-245.6 36,-174 36,-174 36,-174 100.28,-174 100.28,-174"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="100.28,-176.1 106.28,-174 100.28,-171.9 100.28,-176.1"/>
</g>
<!-- src/cli/validations.js -->
<g id="node6" class="node">
<title>src/cli/validations.js</title>
<g id="a_node6"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/validations.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;validations.js&lt;/B&gt;">
<path fill="#ccffcc" stroke="black" d="M168.33,-149C168.33,-149 112.67,-149 112.67,-149 108.33,-149 104,-144.67 104,-140.33 104,-140.33 104,-131.67 104,-131.67 104,-127.33 108.33,-123 112.67,-123 112.67,-123 168.33,-123 168.33,-123 172.67,-123 177,-127.33 177,-131.67 177,-131.67 177,-140.33 177,-140.33 177,-144.67 172.67,-149 168.33,-149"/>
<text text-anchor="start" x="127.5" y="-138.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="112" y="-129.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">validations.js</text>
</a>
</g>
</g>
<!-- bin/smcat&#45;&gt;src/cli/validations.js -->
<g id="edge5" class="edge">
<title>bin/smcat&#45;&gt;src/cli/validations.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M18,-275.96C18,-238.96 18,-136 18,-136 18,-136 97.75,-136 97.75,-136"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="97.75,-138.1 103.75,-136 97.75,-133.9 97.75,-138.1"/>
</g>
<!-- src/index&#45;node.js -->
<g id="node7" class="node">
<title>src/index&#45;node.js</title>
<g id="a_node7"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/index-node.js" xlink:title="src/&lt;BR/&gt;&lt;B&gt;index&#45;node.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M310.83,-378C310.83,-378 254.17,-378 254.17,-378 249.83,-378 245.5,-373.67 245.5,-369.33 245.5,-369.33 245.5,-360.67 245.5,-360.67 245.5,-356.33 249.83,-352 254.17,-352 254.17,-352 310.83,-352 310.83,-352 315.17,-352 319.5,-356.33 319.5,-360.67 319.5,-360.67 319.5,-369.33 319.5,-369.33 319.5,-373.67 315.17,-378 310.83,-378"/>
<text text-anchor="start" x="275" y="-367.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/</text>
<text text-anchor="start" x="253.5" y="-358.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index&#45;node.js</text>
</a>
</g>
</g>
<!-- src/cli/actions.js&#45;&gt;src/index&#45;node.js -->
<g id="edge6" class="edge">
<title>src/cli/actions.js&#45;&gt;src/index&#45;node.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M169.58,-360.67C169.58,-360.67 239.35,-360.67 239.35,-360.67"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="239.35,-362.77 245.35,-360.67 239.35,-358.57 239.35,-362.77"/>
</g>
<!-- src/cli/file&#45;name&#45;to&#45;stream.js -->
<g id="node8" class="node">
<title>src/cli/file&#45;name&#45;to&#45;stream.js</title>
<g id="a_node8"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/file-name-to-stream.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;file&#45;name&#45;to&#45;stream.js&lt;/B&gt;">
<path fill="#ccffcc" stroke="black" d="M329.33,-416C329.33,-416 235.67,-416 235.67,-416 231.33,-416 227,-411.67 227,-407.33 227,-407.33 227,-398.67 227,-398.67 227,-394.33 231.33,-390 235.67,-390 235.67,-390 329.33,-390 329.33,-390 333.67,-390 338,-394.33 338,-398.67 338,-398.67 338,-407.33 338,-407.33 338,-411.67 333.67,-416 329.33,-416"/>
<text text-anchor="start" x="269.5" y="-405.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="235" y="-396.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">file&#45;name&#45;to&#45;stream.js</text>
</a>
</g>
</g>
<!-- src/cli/actions.js&#45;&gt;src/cli/file&#45;name&#45;to&#45;stream.js -->
<g id="edge7" class="edge">
<title>src/cli/actions.js&#45;&gt;src/cli/file&#45;name&#45;to&#45;stream.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M169.6,-369.33C199.9,-369.33 243,-369.33 243,-369.33 243,-369.33 243,-383.69 243,-383.69"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="240.9,-383.69 243,-389.69 245.1,-383.69 240.9,-383.69"/>
</g>
<!-- src/cli/attributes&#45;parser.js -->
<g id="node9" class="node">
<title>src/cli/attributes&#45;parser.js</title>
<g id="a_node9"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/cli/attributes-parser.js" xlink:title="src/cli/&lt;BR/&gt;&lt;B&gt;attributes&#45;parser.js&lt;/B&gt;">
<polygon fill="#ccffcc" stroke="black" points="331.5,-50 233.5,-50 233.5,-24 331.5,-24 331.5,-50"/>
<text text-anchor="start" x="269.5" y="-39.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/cli/</text>
<text text-anchor="start" x="241.5" y="-30.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">attributes&#45;parser.js</text>
</a>
</g>
</g>
<!-- src/cli/normalize.js&#45;&gt;src/cli/attributes&#45;parser.js -->
<g id="edge9" class="edge">
<title>src/cli/normalize.js&#45;&gt;src/cli/attributes&#45;parser.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M174.74,-177C203.52,-177 240,-177 240,-177 240,-177 240,-56.17 240,-56.17"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="242.1,-56.17 240,-50.17 237.9,-56.17 242.1,-56.17"/>
</g>
<!-- src/options.js -->
<g id="node10" class="node">
<title>src/options.js</title>
<g id="a_node10"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/options.js" xlink:title="src/&lt;BR/&gt;&lt;B&gt;options.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M921.83,-396C921.83,-396 881.17,-396 881.17,-396 876.83,-396 872.5,-391.67 872.5,-387.33 872.5,-387.33 872.5,-378.67 872.5,-378.67 872.5,-374.33 876.83,-370 881.17,-370 881.17,-370 921.83,-370 921.83,-370 926.17,-370 930.5,-374.33 930.5,-378.67 930.5,-378.67 930.5,-387.33 930.5,-387.33 930.5,-391.67 926.17,-396 921.83,-396"/>
<text text-anchor="start" x="894" y="-385.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/</text>
<text text-anchor="start" x="880.5" y="-376.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">options.js</text>
</a>
</g>
</g>
<!-- src/cli/normalize.js&#45;&gt;src/options.js -->
<g id="edge8" class="edge">
<title>src/cli/normalize.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M174.75,-182C191.88,-182 209,-182 209,-182 209,-182 209,-384 209,-384 209,-384 866.19,-384 866.19,-384"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.19,-386.1 872.19,-384 866.19,-381.9 866.19,-386.1"/>
</g>
<!-- src/cli/validations.js&#45;&gt;src/index&#45;node.js -->
<g id="edge10" class="edge">
<title>src/cli/validations.js&#45;&gt;src/index&#45;node.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M177.29,-144.5C209.44,-144.5 251,-144.5 251,-144.5 251,-144.5 251,-345.87 251,-345.87"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="248.9,-345.87 251,-351.87 253.1,-345.87 248.9,-345.87"/>
</g>
<!-- src/cli/validations.js&#45;&gt;src/cli/attributes&#45;parser.js -->
<g id="edge11" class="edge">
<title>src/cli/validations.js&#45;&gt;src/cli/attributes&#45;parser.js</title>
<path fill="none" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" d="M177.26,-131.5C204.53,-131.5 237,-131.5 237,-131.5 237,-131.5 237,-56.14 237,-56.14"/>
<polygon fill="#007700" fill-opacity="0.466667" stroke="#007700" stroke-width="2" stroke-opacity="0.466667" points="239.1,-56.14 237,-50.14 234.9,-56.14 239.1,-56.14"/>
</g>
<!-- src/index&#45;node.js&#45;&gt;package.json -->
<g id="edge12" class="edge">
<title>src/index&#45;node.js&#45;&gt;package.json</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M319.58,-377C346.05,-377 377,-377 377,-377 377,-377 377,-593.19 377,-593.19"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="374.9,-593.19 377,-599.19 379.1,-593.19 374.9,-593.19"/>
</g>
<!-- src/index&#45;node.js&#45;&gt;src/options.js -->
<g id="edge13" class="edge">
<title>src/index&#45;node.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M319.83,-375C319.83,-375 866.31,-375 866.31,-375"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.31,-377.1 872.31,-375 866.31,-372.9 866.31,-377.1"/>
</g>
<!-- src/parse/index.js -->
<g id="node11" class="node">
<title>src/parse/index.js</title>
<g id="a_node11"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/index.js" xlink:title="src/parse/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ffccff" stroke="black" d="M430.33,-443C430.33,-443 391.67,-443 391.67,-443 387.33,-443 383,-438.67 383,-434.33 383,-434.33 383,-425.67 383,-425.67 383,-421.33 387.33,-417 391.67,-417 391.67,-417 430.33,-417 430.33,-417 434.67,-417 439,-421.33 439,-425.67 439,-425.67 439,-434.33 439,-434.33 439,-438.67 434.67,-443 430.33,-443"/>
<text text-anchor="start" x="391" y="-432.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/</text>
<text text-anchor="start" x="394" y="-423.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/index&#45;node.js&#45;&gt;src/parse/index.js -->
<g id="edge14" class="edge">
<title>src/index&#45;node.js&#45;&gt;src/parse/index.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M319.67,-376C353.11,-376 397,-376 397,-376 397,-376 397,-410.93 397,-410.93"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="394.9,-410.93 397,-416.93 399.1,-410.93 394.9,-410.93"/>
</g>
<!-- src/render/index&#45;node.js -->
<g id="node12" class="node">
<title>src/render/index&#45;node.js</title>
<g id="a_node12"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/index-node.js" xlink:title="src/render/&lt;BR/&gt;&lt;B&gt;index&#45;node.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M439.33,-318C439.33,-318 382.67,-318 382.67,-318 378.33,-318 374,-313.67 374,-309.33 374,-309.33 374,-300.67 374,-300.67 374,-296.33 378.33,-292 382.67,-292 382.67,-292 439.33,-292 439.33,-292 443.67,-292 448,-296.33 448,-300.67 448,-300.67 448,-309.33 448,-309.33 448,-313.67 443.67,-318 439.33,-318"/>
<text text-anchor="start" x="389" y="-307.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/</text>
<text text-anchor="start" x="382" y="-298.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index&#45;node.js</text>
</a>
</g>
</g>
<!-- src/index&#45;node.js&#45;&gt;src/render/index&#45;node.js -->
<g id="edge15" class="edge">
<title>src/index&#45;node.js&#45;&gt;src/render/index&#45;node.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M317,-351.78C317,-334.94 317,-308 317,-308 317,-308 367.85,-308 367.85,-308"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="367.85,-310.1 373.85,-308 367.85,-305.9 367.85,-310.1"/>
</g>
<!-- src/transform/desugar.js -->
<g id="node13" class="node">
<title>src/transform/desugar.js</title>
<g id="a_node13"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/transform/desugar.js" xlink:title="src/transform/&lt;BR/&gt;&lt;B&gt;desugar.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M437.83,-188C437.83,-188 384.17,-188 384.17,-188 379.83,-188 375.5,-183.67 375.5,-179.33 375.5,-179.33 375.5,-170.67 375.5,-170.67 375.5,-166.33 379.83,-162 384.17,-162 384.17,-162 437.83,-162 437.83,-162 442.17,-162 446.5,-166.33 446.5,-170.67 446.5,-170.67 446.5,-179.33 446.5,-179.33 446.5,-183.67 442.17,-188 437.83,-188"/>
<text text-anchor="start" x="383.5" y="-177.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/transform/</text>
<text text-anchor="start" x="388.5" y="-168.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">desugar.js</text>
</a>
</g>
</g>
<!-- src/index&#45;node.js&#45;&gt;src/transform/desugar.js -->
<g id="edge16" class="edge">
<title>src/index&#45;node.js&#45;&gt;src/transform/desugar.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M313,-351.73C313,-308.13 313,-172 313,-172 313,-172 369.34,-172 369.34,-172"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="369.34,-174.1 375.34,-172 369.34,-169.9 369.34,-174.1"/>
</g>
<!-- src/parse/index.js&#45;&gt;src/options.js -->
<g id="edge22" class="edge">
<title>src/parse/index.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M439.16,-428.06C543.49,-428.06 902,-428.06 902,-428.06 902,-428.06 902,-402.28 902,-402.28"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="904.1,-402.28 902,-396.28 899.9,-402.28 904.1,-402.28"/>
</g>
<!-- src/parse/scxml/index.js -->
<g id="node16" class="node">
<title>src/parse/scxml/index.js</title>
<g id="a_node16"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/scxml/index.js" xlink:title="src/parse/scxml/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ffccff" stroke="black" d="M594.83,-508C594.83,-508 530.17,-508 530.17,-508 525.83,-508 521.5,-503.67 521.5,-499.33 521.5,-499.33 521.5,-490.67 521.5,-490.67 521.5,-486.33 525.83,-482 530.17,-482 530.17,-482 594.83,-482 594.83,-482 599.17,-482 603.5,-486.33 603.5,-490.67 603.5,-490.67 603.5,-499.33 603.5,-499.33 603.5,-503.67 599.17,-508 594.83,-508"/>
<text text-anchor="start" x="529.5" y="-497.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/scxml/</text>
<text text-anchor="start" x="545.5" y="-488.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/parse/index.js&#45;&gt;src/parse/scxml/index.js -->
<g id="edge23" class="edge">
<title>src/parse/index.js&#45;&gt;src/parse/scxml/index.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M411,-443.15C411,-462.15 411,-495 411,-495 411,-495 515.1,-495 515.1,-495"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="515.1,-497.1 521.1,-495 515.1,-492.9 515.1,-497.1"/>
</g>
<!-- src/parse/smcat&#45;ast.schema.json -->
<g id="node17" class="node">
<title>src/parse/smcat&#45;ast.schema.json</title>
<g id="a_node17"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/smcat-ast.schema.json" xlink:title="src/parse/&lt;BR/&gt;&lt;B&gt;smcat&#45;ast.schema.json&lt;/B&gt;">
<path fill="#ffccff" stroke="black" d="M621,-466.52C621,-468.3 594.78,-469.75 562.5,-469.75 530.22,-469.75 504,-468.3 504,-466.52 504,-466.52 504,-437.48 504,-437.48 504,-435.7 530.22,-434.25 562.5,-434.25 594.78,-434.25 621,-435.7 621,-437.48 621,-437.48 621,-466.52 621,-466.52"/>
<path fill="none" stroke="black" d="M621,-466.52C621,-464.74 594.78,-463.3 562.5,-463.3 530.22,-463.3 504,-464.74 504,-466.52"/>
<text text-anchor="start" x="542.5" y="-454.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/</text>
<text text-anchor="start" x="512" y="-445.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">smcat&#45;ast.schema.json</text>
</a>
</g>
</g>
<!-- src/parse/index.js&#45;&gt;src/parse/smcat&#45;ast.schema.json -->
<g id="edge24" class="edge">
<title>src/parse/index.js&#45;&gt;src/parse/smcat&#45;ast.schema.json</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M439.14,-438.56C439.14,-438.56 497.76,-438.56 497.76,-438.56"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="497.76,-440.66 503.76,-438.56 497.76,-436.46 497.76,-440.66"/>
</g>
<!-- src/parse/smcat/smcat&#45;parser.js -->
<g id="node18" class="node">
<title>src/parse/smcat/smcat&#45;parser.js</title>
<g id="a_node18"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/smcat/smcat-parser.js" xlink:title="src/parse/smcat/&lt;BR/&gt;&lt;B&gt;smcat&#45;parser.js&lt;/B&gt;">
<polygon fill="#ffccff" stroke="black" points="604.5,-422 520.5,-422 520.5,-396 604.5,-396 604.5,-422"/>
<text text-anchor="start" x="529" y="-411.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/smcat/</text>
<text text-anchor="start" x="528.5" y="-402.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">smcat&#45;parser.js</text>
</a>
</g>
</g>
<!-- src/parse/index.js&#45;&gt;src/parse/smcat/smcat&#45;parser.js -->
<g id="edge25" class="edge">
<title>src/parse/index.js&#45;&gt;src/parse/smcat/smcat&#45;parser.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M425,-416.88C425,-411.27 425,-406 425,-406 425,-406 514.5,-406 514.5,-406"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="514.5,-408.1 520.5,-406 514.5,-403.9 514.5,-408.1"/>
</g>
<!-- src/render/dot/index.js -->
<g id="node27" class="node">
<title>src/render/dot/index.js</title>
<g id="a_node27"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/index.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M766.83,-102C766.83,-102 709.17,-102 709.17,-102 704.83,-102 700.5,-97.67 700.5,-93.33 700.5,-93.33 700.5,-84.67 700.5,-84.67 700.5,-80.33 704.83,-76 709.17,-76 709.17,-76 766.83,-76 766.83,-76 771.17,-76 775.5,-80.33 775.5,-84.67 775.5,-84.67 775.5,-93.33 775.5,-93.33 775.5,-97.67 771.17,-102 766.83,-102"/>
<text text-anchor="start" x="708.5" y="-91.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="721" y="-82.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/dot/index.js -->
<g id="edge42" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/dot/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M448.24,-298C456.57,-298 463,-298 463,-298 463,-298 463,-89 463,-89 463,-89 694.34,-89 694.34,-89"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="694.34,-91.1 700.34,-89 694.34,-86.9 694.34,-91.1"/>
</g>
<!-- src/render/scjson/index.js -->
<g id="node31" class="node">
<title>src/render/scjson/index.js</title>
<g id="a_node31"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scjson/index.js" xlink:title="src/render/scjson/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M773.83,-358C773.83,-358 702.17,-358 702.17,-358 697.83,-358 693.5,-353.67 693.5,-349.33 693.5,-349.33 693.5,-340.67 693.5,-340.67 693.5,-336.33 697.83,-332 702.17,-332 702.17,-332 773.83,-332 773.83,-332 778.17,-332 782.5,-336.33 782.5,-340.67 782.5,-340.67 782.5,-349.33 782.5,-349.33 782.5,-353.67 778.17,-358 773.83,-358"/>
<text text-anchor="start" x="701.5" y="-347.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scjson/</text>
<text text-anchor="start" x="721" y="-338.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/scjson/index.js -->
<g id="edge43" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/scjson/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M445,-318.08C445,-326.33 445,-335.43 445,-335.43 445,-335.43 687.5,-335.43 687.5,-335.43"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="687.5,-337.53 693.5,-335.43 687.5,-333.33 687.5,-337.53"/>
</g>
<!-- src/render/scxml/index.js -->
<g id="node32" class="node">
<title>src/render/scxml/index.js</title>
<g id="a_node32"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scxml/index.js" xlink:title="src/render/scxml/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M596.83,-280C596.83,-280 528.17,-280 528.17,-280 523.83,-280 519.5,-275.67 519.5,-271.33 519.5,-271.33 519.5,-262.67 519.5,-262.67 519.5,-258.33 523.83,-254 528.17,-254 528.17,-254 596.83,-254 596.83,-254 601.17,-254 605.5,-258.33 605.5,-262.67 605.5,-262.67 605.5,-271.33 605.5,-271.33 605.5,-275.67 601.17,-280 596.83,-280"/>
<text text-anchor="start" x="527.5" y="-269.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scxml/</text>
<text text-anchor="start" x="545.5" y="-260.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/scxml/index.js -->
<g id="edge44" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/scxml/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M448.34,-314C489.21,-314 549,-314 549,-314 549,-314 549,-286.09 549,-286.09"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="551.1,-286.09 549,-280.09 546.9,-286.09 551.1,-286.09"/>
</g>
<!-- src/render/smcat/index.js -->
<g id="node33" class="node">
<title>src/render/smcat/index.js</title>
<g id="a_node33"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/smcat/index.js" xlink:title="src/render/smcat/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M596.83,-242C596.83,-242 528.17,-242 528.17,-242 523.83,-242 519.5,-237.67 519.5,-233.33 519.5,-233.33 519.5,-224.67 519.5,-224.67 519.5,-220.33 523.83,-216 528.17,-216 528.17,-216 596.83,-216 596.83,-216 601.17,-216 605.5,-220.33 605.5,-224.67 605.5,-224.67 605.5,-233.33 605.5,-233.33 605.5,-237.67 601.17,-242 596.83,-242"/>
<text text-anchor="start" x="527.5" y="-231.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/smcat/</text>
<text text-anchor="start" x="545.5" y="-222.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/smcat/index.js -->
<g id="edge45" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/smcat/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M448.25,-310C478.09,-310 515,-310 515,-310 515,-310 515,-233.33 515,-233.33 515,-233.33 515.44,-233.33 515.44,-233.33"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="513.38,-235.43 519.38,-233.33 513.38,-231.23 513.38,-235.43"/>
</g>
<!-- src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js -->
<g id="node34" class="node">
<title>src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js</title>
<g id="a_node34"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/vector/vector-native-dot-with-fallback.js" xlink:title="src/render/vector/&lt;BR/&gt;&lt;B&gt;vector&#45;native&#45;dot&#45;with&#45;fallback.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M632.33,-204C632.33,-204 492.67,-204 492.67,-204 488.33,-204 484,-199.67 484,-195.33 484,-195.33 484,-186.67 484,-186.67 484,-182.33 488.33,-178 492.67,-178 492.67,-178 632.33,-178 632.33,-178 636.67,-178 641,-182.33 641,-186.67 641,-186.67 641,-195.33 641,-195.33 641,-199.67 636.67,-204 632.33,-204"/>
<text text-anchor="start" x="527" y="-193.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/vector/</text>
<text text-anchor="start" x="492" y="-184.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">vector&#45;native&#45;dot&#45;with&#45;fallback.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js -->
<g id="edge46" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M448.13,-306C470.23,-306 494,-306 494,-306 494,-306 494,-210.19 494,-210.19"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="496.1,-210.19 494,-204.19 491.9,-210.19 496.1,-210.19"/>
</g>
<!-- src/render/vector/vector&#45;with&#45;viz&#45;js.js -->
<g id="node35" class="node">
<title>src/render/vector/vector&#45;with&#45;viz&#45;js.js</title>
<g id="a_node35"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/vector/vector-with-viz-js.js" xlink:title="src/render/vector/&lt;BR/&gt;&lt;B&gt;vector&#45;with&#45;viz&#45;js.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M603.83,-166C603.83,-166 521.17,-166 521.17,-166 516.83,-166 512.5,-161.67 512.5,-157.33 512.5,-157.33 512.5,-148.67 512.5,-148.67 512.5,-144.33 516.83,-140 521.17,-140 521.17,-140 603.83,-140 603.83,-140 608.17,-140 612.5,-144.33 612.5,-148.67 612.5,-148.67 612.5,-157.33 612.5,-157.33 612.5,-161.67 608.17,-166 603.83,-166"/>
<text text-anchor="start" x="527" y="-155.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/vector/</text>
<text text-anchor="start" x="520.5" y="-146.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">vector&#45;with&#45;viz&#45;js.js</text>
</a>
</g>
</g>
<!-- src/render/index&#45;node.js&#45;&gt;src/render/vector/vector&#45;with&#45;viz&#45;js.js -->
<g id="edge47" class="edge">
<title>src/render/index&#45;node.js&#45;&gt;src/render/vector/vector&#45;with&#45;viz&#45;js.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M448.24,-302C463.21,-302 477,-302 477,-302 477,-302 477,-157 477,-157 477,-157 506.27,-157 506.27,-157"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="506.27,-159.1 512.27,-157 506.27,-154.9 506.27,-159.1"/>
</g>
<!-- src/state&#45;machine&#45;model.js -->
<g id="node20" class="node">
<title>src/state&#45;machine&#45;model.js</title>
<g id="a_node20"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/state-machine-model.js" xlink:title="src/&lt;BR/&gt;&lt;B&gt;state&#45;machine&#45;model.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M951.33,-358C951.33,-358 851.67,-358 851.67,-358 847.33,-358 843,-353.67 843,-349.33 843,-349.33 843,-340.67 843,-340.67 843,-336.33 847.33,-332 851.67,-332 851.67,-332 951.33,-332 951.33,-332 955.67,-332 960,-336.33 960,-340.67 960,-340.67 960,-349.33 960,-349.33 960,-353.67 955.67,-358 951.33,-358"/>
<text text-anchor="start" x="894" y="-347.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/</text>
<text text-anchor="start" x="851" y="-338.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">state&#45;machine&#45;model.js</text>
</a>
</g>
</g>
<!-- src/transform/desugar.js&#45;&gt;src/state&#45;machine&#45;model.js -->
<g id="edge65" class="edge">
<title>src/transform/desugar.js&#45;&gt;src/state&#45;machine&#45;model.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M446.66,-170C543.65,-170 805,-170 805,-170 805,-170 805,-340.67 805,-340.67 805,-340.67 836.86,-340.67 836.86,-340.67"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="836.86,-342.77 842.86,-340.67 836.86,-338.57 836.86,-342.77"/>
</g>
<!-- src/transform/utl.js -->
<g id="node21" class="node">
<title>src/transform/utl.js</title>
<g id="a_node21"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/transform/utl.js" xlink:title="src/transform/&lt;BR/&gt;&lt;B&gt;utl.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M764.83,-465C764.83,-465 711.17,-465 711.17,-465 706.83,-465 702.5,-460.67 702.5,-456.33 702.5,-456.33 702.5,-447.67 702.5,-447.67 702.5,-443.33 706.83,-439 711.17,-439 711.17,-439 764.83,-439 764.83,-439 769.17,-439 773.5,-443.33 773.5,-447.67 773.5,-447.67 773.5,-456.33 773.5,-456.33 773.5,-460.67 769.17,-465 764.83,-465"/>
<text text-anchor="start" x="710.5" y="-454.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/transform/</text>
<text text-anchor="start" x="727.5" y="-445.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">utl.js</text>
</a>
</g>
</g>
<!-- src/transform/desugar.js&#45;&gt;src/transform/utl.js -->
<g id="edge66" class="edge">
<title>src/transform/desugar.js&#45;&gt;src/transform/utl.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M446.71,-174C514.02,-174 653,-174 653,-174 653,-174 653,-447.67 653,-447.67 653,-447.67 696.44,-447.67 696.44,-447.67"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="696.44,-449.77 702.44,-447.67 696.44,-445.57 696.44,-449.77"/>
</g>
<!-- src/index.js -->
<g id="node14" class="node">
<title>src/index.js</title>
<g id="a_node14"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/index.js" xlink:title="src/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ffffcc" stroke="black" d="M300.83,-340C300.83,-340 264.17,-340 264.17,-340 259.83,-340 255.5,-335.67 255.5,-331.33 255.5,-331.33 255.5,-322.67 255.5,-322.67 255.5,-318.33 259.83,-314 264.17,-314 264.17,-314 300.83,-314 300.83,-314 305.17,-314 309.5,-318.33 309.5,-322.67 309.5,-322.67 309.5,-331.33 309.5,-331.33 309.5,-335.67 305.17,-340 300.83,-340"/>
<text text-anchor="start" x="275" y="-329.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/</text>
<text text-anchor="start" x="265.5" y="-320.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/index.js&#45;&gt;package.json -->
<g id="edge17" class="edge">
<title>src/index.js&#45;&gt;package.json</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M309.66,-338.86C338.51,-338.86 380,-338.86 380,-338.86 380,-338.86 380,-593.08 380,-593.08"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="377.9,-593.08 380,-599.08 382.1,-593.08 377.9,-593.08"/>
</g>
<!-- src/index.js&#45;&gt;src/options.js -->
<g id="edge18" class="edge">
<title>src/index.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M309.56,-336.57C355.06,-336.57 442,-336.57 442,-336.57 442,-336.57 442,-374 442,-374 442,-374 866.41,-374 866.41,-374"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.41,-376.1 872.41,-374 866.41,-371.9 866.41,-376.1"/>
</g>
<!-- src/index.js&#45;&gt;src/parse/index.js -->
<g id="edge19" class="edge">
<title>src/index.js&#45;&gt;src/parse/index.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M309.75,-337.71C347.47,-337.71 411,-337.71 411,-337.71 411,-337.71 411,-410.78 411,-410.78"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="408.9,-410.78 411,-416.78 413.1,-410.78 408.9,-410.78"/>
</g>
<!-- src/index.js&#45;&gt;src/transform/desugar.js -->
<g id="edge21" class="edge">
<title>src/index.js&#45;&gt;src/transform/desugar.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M274,-313.91C274,-275.69 274,-167 274,-167 274,-167 369.36,-167 369.36,-167"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="369.36,-169.1 375.36,-167 369.36,-164.9 369.36,-169.1"/>
</g>
<!-- src/render/index.js -->
<g id="node15" class="node">
<title>src/render/index.js</title>
<g id="a_node15"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/index.js" xlink:title="src/render/&lt;BR/&gt;&lt;B&gt;index.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M432.33,-280C432.33,-280 389.67,-280 389.67,-280 385.33,-280 381,-275.67 381,-271.33 381,-271.33 381,-262.67 381,-262.67 381,-258.33 385.33,-254 389.67,-254 389.67,-254 432.33,-254 432.33,-254 436.67,-254 441,-258.33 441,-262.67 441,-262.67 441,-271.33 441,-271.33 441,-275.67 436.67,-280 432.33,-280"/>
<text text-anchor="start" x="389" y="-269.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/</text>
<text text-anchor="start" x="394" y="-260.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">index.js</text>
</a>
</g>
</g>
<!-- src/index.js&#45;&gt;src/render/index.js -->
<g id="edge20" class="edge">
<title>src/index.js&#45;&gt;src/render/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M292,-313.85C292,-295.65 292,-265 292,-265 292,-265 374.97,-265 374.97,-265"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="374.97,-267.1 380.97,-265 374.97,-262.9 374.97,-267.1"/>
</g>
<!-- src/render/index.js&#45;&gt;src/render/dot/index.js -->
<g id="edge48" class="edge">
<title>src/render/index.js&#45;&gt;src/render/dot/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M441.02,-259.2C449.27,-259.2 456,-259.2 456,-259.2 456,-259.2 456,-82.5 456,-82.5 456,-82.5 694.26,-82.5 694.26,-82.5"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="694.26,-84.6 700.26,-82.5 694.26,-80.4 694.26,-84.6"/>
</g>
<!-- src/render/index.js&#45;&gt;src/render/scjson/index.js -->
<g id="edge49" class="edge">
<title>src/render/index.js&#45;&gt;src/render/scjson/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M441.24,-274.8C470.36,-274.8 510,-274.8 510,-274.8 510,-274.8 510,-334.29 510,-334.29 510,-334.29 687.5,-334.29 687.5,-334.29"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="687.5,-336.39 693.5,-334.29 687.5,-332.19 687.5,-336.39"/>
</g>
<!-- src/render/index.js&#45;&gt;src/render/scxml/index.js -->
<g id="edge50" class="edge">
<title>src/render/index.js&#45;&gt;src/render/scxml/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M441.29,-269.6C441.29,-269.6 513.35,-269.6 513.35,-269.6"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="513.35,-271.7 519.35,-269.6 513.35,-267.5 513.35,-271.7"/>
</g>
<!-- src/render/index.js&#45;&gt;src/render/smcat/index.js -->
<g id="edge51" class="edge">
<title>src/render/index.js&#45;&gt;src/render/smcat/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M411,-253.61C411,-241.2 411,-224.67 411,-224.67 411,-224.67 513.49,-224.67 513.49,-224.67"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="513.49,-226.77 519.49,-224.67 513.49,-222.57 513.49,-226.77"/>
</g>
<!-- src/render/index.js&#45;&gt;src/render/vector/vector&#45;with&#45;viz&#45;js.js -->
<g id="edge52" class="edge">
<title>src/render/index.js&#45;&gt;src/render/vector/vector&#45;with&#45;viz&#45;js.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M441.19,-264.4C455.71,-264.4 470,-264.4 470,-264.4 470,-264.4 470,-153 470,-153 470,-153 506.46,-153 506.46,-153"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="506.46,-155.1 512.46,-153 506.46,-150.9 506.46,-155.1"/>
</g>
<!-- src/parse/parser&#45;helpers.js -->
<g id="node19" class="node">
<title>src/parse/parser&#45;helpers.js</title>
<g id="a_node19"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/parser-helpers.js" xlink:title="src/parse/&lt;BR/&gt;&lt;B&gt;parser&#45;helpers.js&lt;/B&gt;">
<path fill="#ffccff" stroke="black" d="M774.33,-422C774.33,-422 701.67,-422 701.67,-422 697.33,-422 693,-417.67 693,-413.33 693,-413.33 693,-404.67 693,-404.67 693,-400.33 697.33,-396 701.67,-396 701.67,-396 774.33,-396 774.33,-396 778.67,-396 783,-400.33 783,-404.67 783,-404.67 783,-413.33 783,-413.33 783,-417.67 778.67,-422 774.33,-422"/>
<text text-anchor="start" x="718" y="-411.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/</text>
<text text-anchor="start" x="701" y="-402.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">parser&#45;helpers.js</text>
</a>
</g>
</g>
<!-- src/parse/scxml/index.js&#45;&gt;src/parse/parser&#45;helpers.js -->
<g id="edge28" class="edge">
<title>src/parse/scxml/index.js&#45;&gt;src/parse/parser&#45;helpers.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M603.6,-488.5C637.48,-488.5 680,-488.5 680,-488.5 680,-488.5 680,-413.33 680,-413.33 680,-413.33 686.87,-413.33 686.87,-413.33"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="686.87,-415.43 692.87,-413.33 686.87,-411.23 686.87,-415.43"/>
</g>
<!-- src/parse/scxml/index.js&#45;&gt;src/transform/utl.js -->
<g id="edge27" class="edge">
<title>src/parse/scxml/index.js&#45;&gt;src/transform/utl.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M603.63,-495C638.19,-495 682,-495 682,-495 682,-495 682,-456.33 682,-456.33 682,-456.33 696.22,-456.33 696.22,-456.33"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="696.22,-458.43 702.22,-456.33 696.22,-454.23 696.22,-458.43"/>
</g>
<!-- src/parse/scxml/normalize&#45;machine.js -->
<g id="node22" class="node">
<title>src/parse/scxml/normalize&#45;machine.js</title>
<g id="a_node22"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/parse/scxml/normalize-machine.js" xlink:title="src/parse/scxml/&lt;BR/&gt;&lt;B&gt;normalize&#45;machine.js&lt;/B&gt;">
<path fill="#ffccff" stroke="black" d="M783.33,-508C783.33,-508 692.67,-508 692.67,-508 688.33,-508 684,-503.67 684,-499.33 684,-499.33 684,-490.67 684,-490.67 684,-486.33 688.33,-482 692.67,-482 692.67,-482 783.33,-482 783.33,-482 787.67,-482 792,-486.33 792,-490.67 792,-490.67 792,-499.33 792,-499.33 792,-503.67 787.67,-508 783.33,-508"/>
<text text-anchor="start" x="705" y="-497.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/parse/scxml/</text>
<text text-anchor="start" x="692" y="-488.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">normalize&#45;machine.js</text>
</a>
</g>
</g>
<!-- src/parse/scxml/index.js&#45;&gt;src/parse/scxml/normalize&#45;machine.js -->
<g id="edge29" class="edge">
<title>src/parse/scxml/index.js&#45;&gt;src/parse/scxml/normalize&#45;machine.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M603.65,-501.5C603.65,-501.5 677.81,-501.5 677.81,-501.5"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="677.81,-503.6 683.81,-501.5 677.81,-499.4 677.81,-503.6"/>
</g>
<!-- src/parse/smcat/smcat&#45;parser.js&#45;&gt;src/parse/parser&#45;helpers.js -->
<g id="edge30" class="edge">
<title>src/parse/smcat/smcat&#45;parser.js&#45;&gt;src/parse/parser&#45;helpers.js</title>
<path fill="none" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" d="M604.54,-404.67C604.54,-404.67 686.93,-404.67 686.93,-404.67"/>
<polygon fill="#ff00ff" fill-opacity="0.466667" stroke="#ff00ff" stroke-width="2" stroke-opacity="0.466667" points="686.93,-406.77 692.93,-404.67 686.93,-402.57 686.93,-406.77"/>
</g>
<!-- src/parse/parser&#45;helpers.js&#45;&gt;src/state&#45;machine&#45;model.js -->
<g id="edge26" class="edge">
<title>src/parse/parser&#45;helpers.js&#45;&gt;src/state&#45;machine&#45;model.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M783.02,-409C817.08,-409 858,-409 858,-409 858,-409 858,-364.26 858,-364.26"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="860.1,-364.26 858,-358.26 855.9,-364.26 860.1,-364.26"/>
</g>
<!-- src/render/dot/attributebuilder.js -->
<g id="node23" class="node">
<title>src/render/dot/attributebuilder.js</title>
<g id="a_node23"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/attributebuilder.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;attributebuilder.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M938.33,-216C938.33,-216 864.67,-216 864.67,-216 860.33,-216 856,-211.67 856,-207.33 856,-207.33 856,-198.67 856,-198.67 856,-194.33 860.33,-190 864.67,-190 864.67,-190 938.33,-190 938.33,-190 942.67,-190 947,-194.33 947,-198.67 947,-198.67 947,-207.33 947,-207.33 947,-211.67 942.67,-216 938.33,-216"/>
<text text-anchor="start" x="872" y="-205.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="864" y="-196.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">attributebuilder.js</text>
</a>
</g>
</g>
<!-- src/render/dot/counter.js -->
<g id="node24" class="node">
<title>src/render/dot/counter.js</title>
<g id="a_node24"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/counter.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;counter.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M930.33,-178C930.33,-178 872.67,-178 872.67,-178 868.33,-178 864,-173.67 864,-169.33 864,-169.33 864,-160.67 864,-160.67 864,-156.33 868.33,-152 872.67,-152 872.67,-152 930.33,-152 930.33,-152 934.67,-152 939,-156.33 939,-160.67 939,-160.67 939,-169.33 939,-169.33 939,-173.67 934.67,-178 930.33,-178"/>
<text text-anchor="start" x="872" y="-167.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="880" y="-158.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">counter.js</text>
</a>
</g>
</g>
<!-- src/render/dot/dot.states.template.js -->
<g id="node25" class="node">
<title>src/render/dot/dot.states.template.js</title>
<g id="a_node25"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/dot.states.template.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;dot.states.template.js&lt;/B&gt;">
<polygon fill="#ccccff" stroke="black" points="956,-140 847,-140 847,-114 956,-114 956,-140"/>
<text text-anchor="start" x="872" y="-129.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="855" y="-120.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">dot.states.template.js</text>
</a>
</g>
</g>
<!-- src/render/dot/dot.template.js -->
<g id="node26" class="node">
<title>src/render/dot/dot.template.js</title>
<g id="a_node26"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/dot.template.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;dot.template.js&lt;/B&gt;">
<polygon fill="#ccccff" stroke="black" points="941.5,-102 861.5,-102 861.5,-76 941.5,-76 941.5,-102"/>
<text text-anchor="start" x="872" y="-91.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="869.5" y="-82.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">dot.template.js</text>
</a>
</g>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/options.js -->
<g id="edge31" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M775.78,-98.29C793.6,-98.29 811,-98.29 811,-98.29 811,-98.29 811,-371 811,-371 811,-371 866.37,-371 866.37,-371"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.37,-373.1 872.37,-371 866.37,-368.9 866.37,-373.1"/>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/state&#45;machine&#45;model.js -->
<g id="edge32" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/state&#45;machine&#45;model.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M775.65,-94.57C796,-94.57 817,-94.57 817,-94.57 817,-94.57 817,-336.33 817,-336.33 817,-336.33 836.81,-336.33 836.81,-336.33"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="836.81,-338.43 842.81,-336.33 836.81,-334.23 836.81,-338.43"/>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/attributebuilder.js -->
<g id="edge33" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/attributebuilder.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M738,-102.24C738,-131.08 738,-197 738,-197 738,-197 849.96,-197 849.96,-197"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="849.96,-199.1 855.96,-197 849.96,-194.9 849.96,-199.1"/>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/counter.js -->
<g id="edge34" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/counter.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M757,-102.27C757,-123.15 757,-161.33 757,-161.33 757,-161.33 857.91,-161.33 857.91,-161.33"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="857.91,-163.43 863.91,-161.33 857.91,-159.23 857.91,-163.43"/>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/dot.states.template.js -->
<g id="edge35" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/dot.states.template.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M775.66,-90.86C809.19,-90.86 853,-90.86 853,-90.86 853,-90.86 853,-107.95 853,-107.95"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="850.9,-107.95 853,-113.95 855.1,-107.95 850.9,-107.95"/>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/dot.template.js -->
<g id="edge36" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/dot.template.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M775.51,-87.14C775.51,-87.14 855.31,-87.14 855.31,-87.14"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="855.31,-89.24 861.31,-87.14 855.31,-85.04 855.31,-89.24"/>
</g>
<!-- src/render/dot/state&#45;transformers.js -->
<g id="node28" class="node">
<title>src/render/dot/state&#45;transformers.js</title>
<g id="a_node28"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/state-transformers.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;state&#45;transformers.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M946.83,-64C946.83,-64 856.17,-64 856.17,-64 851.83,-64 847.5,-59.67 847.5,-55.33 847.5,-55.33 847.5,-46.67 847.5,-46.67 847.5,-42.33 851.83,-38 856.17,-38 856.17,-38 946.83,-38 946.83,-38 951.17,-38 955.5,-42.33 955.5,-46.67 955.5,-46.67 955.5,-55.33 955.5,-55.33 955.5,-59.67 951.17,-64 946.83,-64"/>
<text text-anchor="start" x="872" y="-53.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="855.5" y="-44.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">state&#45;transformers.js</text>
</a>
</g>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/state&#45;transformers.js -->
<g id="edge37" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/state&#45;transformers.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M775.65,-83.43C810.52,-83.43 857,-83.43 857,-83.43 857,-83.43 857,-70.19 857,-70.19"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="859.1,-70.19 857,-64.19 854.9,-70.19 859.1,-70.19"/>
</g>
<!-- src/render/dot/transition&#45;transformers.js -->
<g id="node29" class="node">
<title>src/render/dot/transition&#45;transformers.js</title>
<g id="a_node29"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/transition-transformers.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;transition&#45;transformers.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M956.33,-26C956.33,-26 846.67,-26 846.67,-26 842.33,-26 838,-21.67 838,-17.33 838,-17.33 838,-8.67 838,-8.67 838,-4.33 842.33,0 846.67,0 846.67,0 956.33,0 956.33,0 960.67,0 965,-4.33 965,-8.67 965,-8.67 965,-17.33 965,-17.33 965,-21.67 960.67,-26 956.33,-26"/>
<text text-anchor="start" x="872" y="-15.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="846" y="-6.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">transition&#45;transformers.js</text>
</a>
</g>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/transition&#45;transformers.js -->
<g id="edge38" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/transition&#45;transformers.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M775.54,-79.71C800.61,-79.71 829,-79.71 829,-79.71 829,-79.71 829,-12 829,-12 829,-12 831.89,-12 831.89,-12"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="831.89,-14.1 837.89,-12 831.89,-9.9 831.89,-14.1"/>
</g>
<!-- src/render/dot/utl.js -->
<g id="node30" class="node">
<title>src/render/dot/utl.js</title>
<g id="a_node30"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/dot/utl.js" xlink:title="src/render/dot/&lt;BR/&gt;&lt;B&gt;utl.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M1070.33,-26C1070.33,-26 1012.67,-26 1012.67,-26 1008.33,-26 1004,-21.67 1004,-17.33 1004,-17.33 1004,-8.67 1004,-8.67 1004,-4.33 1008.33,0 1012.67,0 1012.67,0 1070.33,0 1070.33,0 1074.67,0 1079,-4.33 1079,-8.67 1079,-8.67 1079,-17.33 1079,-17.33 1079,-21.67 1074.67,-26 1070.33,-26"/>
<text text-anchor="start" x="1012" y="-15.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/dot/</text>
<text text-anchor="start" x="1031" y="-6.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">utl.js</text>
</a>
</g>
</g>
<!-- src/render/dot/index.js&#45;&gt;src/render/dot/utl.js -->
<g id="edge39" class="edge">
<title>src/render/dot/index.js&#45;&gt;src/render/dot/utl.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M738,-75.6C738,-72.45 738,-70 738,-70 738,-70 1054,-70 1054,-70 1054,-70 1054,-32.22 1054,-32.22"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="1056.1,-32.22 1054,-26.22 1051.9,-32.22 1056.1,-32.22"/>
</g>
<!-- src/render/dot/state&#45;transformers.js&#45;&gt;src/render/dot/utl.js -->
<g id="edge40" class="edge">
<title>src/render/dot/state&#45;transformers.js&#45;&gt;src/render/dot/utl.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M955.57,-51C990.32,-51 1029,-51 1029,-51 1029,-51 1029,-32.29 1029,-32.29"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="1031.1,-32.29 1029,-26.29 1026.9,-32.29 1031.1,-32.29"/>
</g>
<!-- src/render/dot/transition&#45;transformers.js&#45;&gt;src/render/dot/utl.js -->
<g id="edge41" class="edge">
<title>src/render/dot/transition&#45;transformers.js&#45;&gt;src/render/dot/utl.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M965.35,-13C965.35,-13 997.74,-13 997.74,-13"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="997.74,-15.1 1003.74,-13 997.74,-10.9 997.74,-15.1"/>
</g>
<!-- src/render/scjson/index.js&#45;&gt;src/state&#45;machine&#45;model.js -->
<g id="edge53" class="edge">
<title>src/render/scjson/index.js&#45;&gt;src/state&#45;machine&#45;model.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M782.68,-353.67C782.68,-353.67 836.76,-353.67 836.76,-353.67"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="836.76,-355.77 842.76,-353.67 836.76,-351.57 836.76,-355.77"/>
</g>
<!-- src/render/scjson/make&#45;valid&#45;event&#45;names.js -->
<g id="node36" class="node">
<title>src/render/scjson/make&#45;valid&#45;event&#45;names.js</title>
<g id="a_node36"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scjson/make-valid-event-names.js" xlink:title="src/render/scjson/&lt;BR/&gt;&lt;B&gt;make&#45;valid&#45;event&#45;names.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M959.33,-320C959.33,-320 843.67,-320 843.67,-320 839.33,-320 835,-315.67 835,-311.33 835,-311.33 835,-302.67 835,-302.67 835,-298.33 839.33,-294 843.67,-294 843.67,-294 959.33,-294 959.33,-294 963.67,-294 968,-298.33 968,-302.67 968,-302.67 968,-311.33 968,-311.33 968,-315.67 963.67,-320 959.33,-320"/>
<text text-anchor="start" x="865" y="-309.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scjson/</text>
<text text-anchor="start" x="843" y="-300.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">make&#45;valid&#45;event&#45;names.js</text>
</a>
</g>
</g>
<!-- src/render/scjson/index.js&#45;&gt;src/render/scjson/make&#45;valid&#45;event&#45;names.js -->
<g id="edge54" class="edge">
<title>src/render/scjson/index.js&#45;&gt;src/render/scjson/make&#45;valid&#45;event&#45;names.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M782.59,-349.33C809.65,-349.33 839,-349.33 839,-349.33 839,-349.33 839,-326.39 839,-326.39"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="841.1,-326.39 839,-320.39 836.9,-326.39 841.1,-326.39"/>
</g>
<!-- src/render/scjson/make&#45;valid&#45;xml&#45;name.js -->
<g id="node37" class="node">
<title>src/render/scjson/make&#45;valid&#45;xml&#45;name.js</title>
<g id="a_node37"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scjson/make-valid-xml-name.js" xlink:title="src/render/scjson/&lt;BR/&gt;&lt;B&gt;make&#45;valid&#45;xml&#45;name.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M952.33,-282C952.33,-282 850.67,-282 850.67,-282 846.33,-282 842,-277.67 842,-273.33 842,-273.33 842,-264.67 842,-264.67 842,-260.33 846.33,-256 850.67,-256 850.67,-256 952.33,-256 952.33,-256 956.67,-256 961,-260.33 961,-264.67 961,-264.67 961,-273.33 961,-273.33 961,-277.67 956.67,-282 952.33,-282"/>
<text text-anchor="start" x="865" y="-271.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scjson/</text>
<text text-anchor="start" x="850" y="-262.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">make&#45;valid&#45;xml&#45;name.js</text>
</a>
</g>
</g>
<!-- src/render/scjson/index.js&#45;&gt;src/render/scjson/make&#45;valid&#45;xml&#45;name.js -->
<g id="edge55" class="edge">
<title>src/render/scjson/index.js&#45;&gt;src/render/scjson/make&#45;valid&#45;xml&#45;name.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M782.99,-345C803.38,-345 823,-345 823,-345 823,-345 823,-269 823,-269 823,-269 835.6,-269 835.6,-269"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="835.6,-271.1 841.6,-269 835.6,-266.9 835.6,-271.1"/>
</g>
<!-- src/render/scxml/index.js&#45;&gt;src/render/scjson/index.js -->
<g id="edge56" class="edge">
<title>src/render/scxml/index.js&#45;&gt;src/render/scjson/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M577,-280.07C577,-299.34 577,-333.14 577,-333.14 577,-333.14 687.15,-333.14 687.15,-333.14"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="687.15,-335.24 693.15,-333.14 687.15,-331.04 687.15,-335.24"/>
</g>
<!-- src/render/scxml/scxml.states.template.js -->
<g id="node38" class="node">
<title>src/render/scxml/scxml.states.template.js</title>
<g id="a_node38"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scxml/scxml.states.template.js" xlink:title="src/render/scxml/&lt;BR/&gt;&lt;B&gt;scxml.states.template.js&lt;/B&gt;">
<polygon fill="#ccccff" stroke="black" points="799,-320 677,-320 677,-294 799,-294 799,-320"/>
<text text-anchor="start" x="703" y="-309.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scxml/</text>
<text text-anchor="start" x="685" y="-300.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">scxml.states.template.js</text>
</a>
</g>
</g>
<!-- src/render/scxml/index.js&#45;&gt;src/render/scxml/scxml.states.template.js -->
<g id="edge57" class="edge">
<title>src/render/scxml/index.js&#45;&gt;src/render/scxml/scxml.states.template.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M605.68,-272C642.33,-272 689,-272 689,-272 689,-272 689,-287.97 689,-287.97"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="686.9,-287.97 689,-293.97 691.1,-287.97 686.9,-287.97"/>
</g>
<!-- src/render/scxml/scxml.template.js -->
<g id="node39" class="node">
<title>src/render/scxml/scxml.template.js</title>
<g id="a_node39"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/scxml/scxml.template.js" xlink:title="src/render/scxml/&lt;BR/&gt;&lt;B&gt;scxml.template.js&lt;/B&gt;">
<polygon fill="#ccccff" stroke="black" points="784,-282 692,-282 692,-256 784,-256 784,-282"/>
<text text-anchor="start" x="703" y="-271.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/scxml/</text>
<text text-anchor="start" x="700" y="-262.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">scxml.template.js</text>
</a>
</g>
</g>
<!-- src/render/scxml/index.js&#45;&gt;src/render/scxml/scxml.template.js -->
<g id="edge58" class="edge">
<title>src/render/scxml/index.js&#45;&gt;src/render/scxml/scxml.template.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M605.88,-264C605.88,-264 685.74,-264 685.74,-264"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="685.74,-266.1 691.74,-264 685.74,-261.9 685.74,-266.1"/>
</g>
<!-- src/render/smcat/smcat.template.js -->
<g id="node40" class="node">
<title>src/render/smcat/smcat.template.js</title>
<g id="a_node40"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/smcat/smcat.template.js" xlink:title="src/render/smcat/&lt;BR/&gt;&lt;B&gt;smcat.template.js&lt;/B&gt;">
<polygon fill="#ccccff" stroke="black" points="784.5,-244 691.5,-244 691.5,-218 784.5,-218 784.5,-244"/>
<text text-anchor="start" x="703" y="-233.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/smcat/</text>
<text text-anchor="start" x="699.5" y="-224.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">smcat.template.js</text>
</a>
</g>
</g>
<!-- src/render/smcat/index.js&#45;&gt;src/render/smcat/smcat.template.js -->
<g id="edge59" class="edge">
<title>src/render/smcat/index.js&#45;&gt;src/render/smcat/smcat.template.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M605.88,-230C605.88,-230 685.43,-230 685.43,-230"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="685.43,-232.1 691.43,-230 685.43,-227.9 685.43,-232.1"/>
</g>
<!-- src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/options.js -->
<g id="edge60" class="edge">
<title>src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M631,-204.09C631,-245.82 631,-373 631,-373 631,-373 866.29,-373 866.29,-373"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.29,-375.1 872.29,-373 866.29,-370.9 866.29,-375.1"/>
</g>
<!-- src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/render/dot/index.js -->
<g id="edge61" class="edge">
<title>src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/render/dot/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M627,-177.72C627,-151.48 627,-95.5 627,-95.5 627,-95.5 694.42,-95.5 694.42,-95.5"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="694.42,-97.6 700.42,-95.5 694.42,-93.4 694.42,-97.6"/>
</g>
<!-- src/render/vector/dot&#45;to&#45;vector&#45;native.js -->
<g id="node41" class="node">
<title>src/render/vector/dot&#45;to&#45;vector&#45;native.js</title>
<g id="a_node41"><a xlink:href="https://github.com/sverweij/state-machine-cat/blob/develop/src/render/vector/dot-to-vector-native.js" xlink:title="src/render/vector/&lt;BR/&gt;&lt;B&gt;dot&#45;to&#45;vector&#45;native.js&lt;/B&gt;">
<path fill="#ccccff" stroke="black" d="M784.83,-64C784.83,-64 691.17,-64 691.17,-64 686.83,-64 682.5,-59.67 682.5,-55.33 682.5,-55.33 682.5,-46.67 682.5,-46.67 682.5,-42.33 686.83,-38 691.17,-38 691.17,-38 784.83,-38 784.83,-38 789.17,-38 793.5,-42.33 793.5,-46.67 793.5,-46.67 793.5,-55.33 793.5,-55.33 793.5,-59.67 789.17,-64 784.83,-64"/>
<text text-anchor="start" x="702.5" y="-53.8" font-family="Helvetica,sans-Serif" font-size="9.00">src/render/vector/</text>
<text text-anchor="start" x="690.5" y="-44.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00">dot&#45;to&#45;vector&#45;native.js</text>
</a>
</g>
</g>
<!-- src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/render/vector/dot&#45;to&#45;vector&#45;native.js -->
<g id="edge62" class="edge">
<title>src/render/vector/vector&#45;native&#45;dot&#45;with&#45;fallback.js&#45;&gt;src/render/vector/dot&#45;to&#45;vector&#45;native.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M641.06,-184C665.42,-184 686,-184 686,-184 686,-184 686,-70.24 686,-70.24"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="688.1,-70.24 686,-64.24 683.9,-70.24 688.1,-70.24"/>
</g>
<!-- src/render/vector/vector&#45;with&#45;viz&#45;js.js&#45;&gt;src/options.js -->
<g id="edge63" class="edge">
<title>src/render/vector/vector&#45;with&#45;viz&#45;js.js&#45;&gt;src/options.js</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" d="M612.55,-156.67C638.57,-156.67 665,-156.67 665,-156.67 665,-156.67 665,-372 665,-372 665,-372 866.03,-372 866.03,-372"/>
<polygon fill="#000000" fill-opacity="0.200000" stroke="#000000" stroke-width="2" stroke-opacity="0.200000" points="866.03,-374.1 872.03,-372 866.03,-369.9 866.03,-374.1"/>
</g>
<!-- src/render/vector/vector&#45;with&#45;viz&#45;js.js&#45;&gt;src/render/dot/index.js -->
<g id="edge64" class="edge">
<title>src/render/vector/vector&#45;with&#45;viz&#45;js.js&#45;&gt;src/render/dot/index.js</title>
<path fill="none" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" d="M612.77,-146C658.86,-146 720,-146 720,-146 720,-146 720,-108.22 720,-108.22"/>
<polygon fill="#0000ff" fill-opacity="0.466667" stroke="#0000ff" stroke-width="2" stroke-opacity="0.466667" points="722.1,-108.22 720,-102.22 717.9,-108.22 722.1,-108.22"/>
</g>
</g>
</svg>
<script>document.body.onmouseover = getHighlightHandler();

function getHighlightHandler() {
  /** @type {string} */
  var currentHighlightedTitle;

  /** @type {NodeListOf<SVGGElement>} */
  var nodes = document.querySelectorAll(".node");
  /** @type {NodeListOf<SVGGElement>} */
  var edges = document.querySelectorAll(".edge");
  var title2ElementMap = new Title2ElementMap(edges, nodes);

  /** @param {MouseEvent} pMouseEvent */
  return function highlightHandler(pMouseEvent) {
    var closestNodeOrEdge = pMouseEvent.target.closest(".edge, .node");
    var closestTitleText = getTitleText(closestNodeOrEdge);

    if (!(currentHighlightedTitle === closestTitleText)) {
      title2ElementMap.get(currentHighlightedTitle).forEach(removeHighlight);
      title2ElementMap.get(closestTitleText).forEach(addHighlight);
      currentHighlightedTitle = closestTitleText;
    }
  };
}

/**
 *
 * @param {SVGGelement[]} pEdges
 * @param {SVGGElement[]} pNodes
 * @return {{get: (pTitleText:string) => SVGGElement[]}}
 */
function Title2ElementMap(pEdges, pNodes) {
  /* {{[key: string]: SVGGElement[]}} */
  var elementMap = buildMap(pEdges, pNodes);

  /**
   * @param {NodeListOf<SVGGElement>} pEdges
   * @param {NodeListOf<SVGGElement>} pNodes
   * @return {{[key: string]: SVGGElement[]}}
   */
  function buildMap(pEdges, pNodes) {
    var title2NodeMap = buildTitle2NodeMap(pNodes);

    return nodeListToArray(pEdges).reduce(addEdgeToMap(title2NodeMap), {});
  }
  /**
   * @param {NodeListOf<SVGGElement>} pNodes
   * @return {{[key: string]: SVGGElement}}
   */
  function buildTitle2NodeMap(pNodes) {
    return nodeListToArray(pNodes).reduce(addNodeToMap, {});
  }

  function addNodeToMap(pMap, pNode) {
    var titleText = getTitleText(pNode);

    if (titleText) {
      pMap[titleText] = pNode;
    }
    return pMap;
  }

  function addEdgeToMap(pNodeMap) {
    return function (pEdgeMap, pEdge) {
      /** @type {string} */
      var titleText = getTitleText(pEdge);

      if (titleText) {
        var edge = pryEdgeFromTitle(titleText);

        pEdgeMap[titleText] = [pNodeMap[edge.from], pNodeMap[edge.to]];
        (pEdgeMap[edge.from] || (pEdgeMap[edge.from] = [])).push(pEdge);
        (pEdgeMap[edge.to] || (pEdgeMap[edge.to] = [])).push(pEdge);
      }
      return pEdgeMap;
    };
  }

  /**
   *
   * @param {string} pString
   * @return {{from?: string; to?:string;}}
   */
  function pryEdgeFromTitle(pString) {
    var nodeNames = pString.split(/\s*->\s*/);

    return {
      from: nodeNames.shift(),
      to: nodeNames.shift(),
    };
  }
  /**
   *
   * @param {string} pTitleText
   * @return {SVGGElement[]}
   */
  function get(pTitleText) {
    return (pTitleText && elementMap[pTitleText]) || [];
  }
  return {
    get: get,
  };
}

/**
 * @param {SVGGElement} pGElement
 * @return {string?}
 */
function getTitleText(pGElement) {
  /** @type {SVGTitleElement} */
  var title = pGElement && pGElement.querySelector("title");
  /** @type {string} */
  var titleText = title && title.textContent;

  if (titleText) {
    titleText = titleText.trim();
  }
  return titleText;
}

/**
 * @param {NodeListOf<Element>} pNodeList
 * @return {Element[]}
 */
function nodeListToArray(pNodeList) {
  var lReturnValue = [];

  pNodeList.forEach(function (pElement) {
    lReturnValue.push(pElement);
  });

  return lReturnValue;
}

/**
 * @param {SVGGElement} pGElement
 */
function removeHighlight(pGElement) {
  if (pGElement && pGElement.classList) {
    pGElement.classList.remove("current");
  }
}

/**
 * @param {SVGGElement} pGroup
 */
function addHighlight(pGroup) {
  if (pGroup && pGroup.classList) {
    pGroup.classList.add("current");
  }
}
</script>  </body>
</html>
